Android 客户端与服务器端进行数据交互(一、登录服务器端)

您所在的位置:网站首页 gogokid学生端 安卓 Android 客户端与服务器端进行数据交互(一、登录服务器端)

Android 客户端与服务器端进行数据交互(一、登录服务器端)

2023-08-01 04:52| 来源: 网络整理| 查看: 265

概要

安卓APP要实现很多功能(比如登录注册、发表评论等)时都必须要使用到网络数据交互。所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手。

预期效果图如下,输入手机号和密码,点击Login按钮,上传数据到服务器端进行验证,再对结果进行反馈。 这里写图片描述

博客分一二两篇,第一篇是服务器端,第二篇是Android客户端 而服务器端分为User model、UserDAO、LoginServlet三个部分,只写了用户登录验证流程中最简单的实现逻辑,仅供参考。

User model

用户model最主要的属性,就是账户(现在多为手机号)和账户密码,同时定义了Key,用于在URL中传参和取参。

public class User implements Serializable{ private int id; private String phoneNumber; private String password; private String userName; private String emailAddress; private Date registerTime; //用于URL传参和取参时的key public static String PHONENUMBER = "phoneNumber"; public static String PASSWORD = "passWord"; public static String USERNAME = "userName"; //构造函数 public User(String phoneNumber,String password,String userName){ this.phoneNumber = phoneNumber; this.password = password; this.userName = userName; registerTime = new Date(); } //属性的get与set方法不再贴出 } UserDAO

这里没有去涉及数据库的复杂操作和查询比对,就用了一个简单的ArrayList数组作为数据源,通过isLoginCheck方法对数组进行遍历取值,从而对登录验证是否成功进行判断。

public class UserDAO { public static void main(String[] args) { //本地验证Main函数 UserDAO userDAO = new UserDAO(); System.out.println(userDAO.isLoginOK("123456", "abc123456")); } //假设的数据源 public ArrayList users; public UserDAO() { // TODO Auto-generated constructor stub users = new ArrayList(); users.add(new User("123456","abc123456","codingma")); users.add(new User("654321","abcdf123","codemayq")); } //验证函数 public boolean isLoginOK(String phoneNumber,String password) { for (User user : users) { if (user.getPhoneNumber().equals(phoneNumber)) { if (user.getPassword().equals(password)) { return true; } } } return false; } } LoginServlet

LoginServlet只是一个普通的Servlet,在doPost方法中,对URL中的参数进行了提取,然后调用UserDAO中的isLoginOK方法进行验证,返回OK或者Wrong的结果值

public class LoginServlet extends HttpServlet { public LoginServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("GET"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); //取出URL中的账号密码参数 String phoneNumber = request.getParameter(User.PHONENUMBER); String passWord = request.getParameter(User.PASSWORD); UserDAO userDAO = new UserDAO(); //验证过程 if (userDAO.isLoginOK(phoneNumber, passWord)) { out.println("OK"); }else { out.println("Wrong"); } out.flush(); out.close(); } } 总结

服务器端的部分就分为三部分,User类,用于数据验证的UserDAO类,用于接收处理请求并返回结果的LoginServlet,调用关系比较清晰,不算特别复杂。

Android客户端的代码请见下一章 转载请注明出处http://blog.csdn.net/u012145166/article/details/51335187



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3